﻿#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;

template<class T>
class BaseTemplate
{
public:
	//4.double类型；
	T m_A;
};
//1.childTemplate继承于BaseTemplate，必须告诉BaseTemplate中T的类型，否则T无法分配内存；
class ChildTemplate :public BaseTemplate<int>
{
};
//2.childTemplateClass也是模板类；
template<class T1, class T2>
class ChildTemplateClass :public BaseTemplate<T2>
{
public:
	ChildTemplateClass()
	{
		cout << typeid(T1).name() << endl;//int
		cout << typeid(T2).name() << endl;//double
	}
public:
	//3.int类型；
	T1 m_B;
};
void testClassTemplateExtends()
{
	//5.由用户来指定类型；
	ChildTemplateClass<int, double>child;
}

//main303：类模板碰到继承的问题
int main303()
{
	testClassTemplateExtends();

	system("pause");
	return EXIT_SUCCESS;
}